Skip to content

chore: require Symfony ^7.4 across all components#8397

Merged
soyuka merged 1 commit into
api-platform:4.4from
soyuka:chore/symfony-7.4-floor
Jul 12, 2026
Merged

chore: require Symfony ^7.4 across all components#8397
soyuka merged 1 commit into
api-platform:4.4from
soyuka:chore/symfony-7.4-floor

Conversation

@soyuka

@soyuka soyuka commented Jul 12, 2026

Copy link
Copy Markdown
Member
Q A
Branch? 4.4
Tickets
License MIT
Doc PR

Symfony 7.4 is the new LTS. This bumps every symfony/* version floor to ^7.4 || ^8.0 across all components and drops support for Symfony 6.4 / 7.0–7.3 on the 4.4 branch.

What changed

1. composer.json floor bump (all 22 files)

Every symfony/<component> floor in require / require-dev is now ^7.4 || ^8.0, and the extra.symfony.require declaration in each file is bumped to the same value (read by Flex in CI, including the prefer-lowest job).

Deliberately left untouched:

  • conflict entries (upper-bound exclusions, not floors): symfony/framework-bundle: "6.4.6 || 7.0.6", symfony/object-mapper: "<7.3.4", symfony/var-exporter: "<6.1.1", symfony/http-client: "<6.4".
  • symfony/*-contracts (^3.x) and symfony/polyfill-* — kept.
  • symfony/serializer is ^7.4.9 || ^8.0.9 (not bare ^7.4): the .9 patch floor preserves the COLLECT_DENORMALIZATION_ERRORS / setAttributeValue contract backport ([Serializer] Move type-mismatch and uninitialized-property handling into concrete normalizers symfony/symfony#64067) that shipped into the already-released 7.4.x / 8.0.x lines. Only the now-unsupported 6.4 branch was dropped.

2. CI matrix

No workflow change required. phpunit-symfony-lowest resolves via composer update --prefer-lowest against the new floors; phpunit-symfony-next / -edge already target dev / 8.1. No hardcoded SYMFONY_REQUIRE or 6.4/7.0–7.3 matrix pin exists in .github/.

3. Cleanups unblocked by the floor

  • ParameterValidatorProvider: dropped the getConstraint() / getCause() method_exists shims (guaranteed on ConstraintViolationInterface since 7.2) and their @phpstan-ignore-line comments.
  • OperationRequestInitiatorTrait: removed a stale TODO docblock.

Follow-up (out of scope here)

Two method_exists(Request::class, 'getContentTypeFormat') shims could now be simplified but are left for a separate PR:

  • src/GraphQl/Action/EntrypointAction.php:103
  • src/Serializer/SerializerContextBuilder.php:109

CS Fixer / PHPStan deferred to CI (no local vendor install available in this environment).

Symfony 7.4 is the new LTS; bump every symfony/* floor to ^7.4 (|| ^8.0)
across all components and drop 6.4 / 7.0-7.3 support. Also bump the
extra.symfony.require declaration in each composer.json to ^7.4 || ^8.0
to stay consistent with the new floor (read by flex in CI).

Cleanups the floor unblocks:
- ParameterValidatorProvider: drop the getConstraint()/getCause()
  method_exists shims (guaranteed on ConstraintViolationInterface >= 7.2)
- OperationRequestInitiatorTrait: drop a stale TODO
@soyuka soyuka merged commit 2d104d0 into api-platform:4.4 Jul 12, 2026
92 of 97 checks passed
@soyuka soyuka mentioned this pull request Jul 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant